From 494adf9a5b52d3ee9d8d21544fca844853f9fe0f Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 7 Sep 2009 08:41:00 +0100 Subject: [PATCH] x86: convert frame_table to a #define Signed-off-by: Jan Beulich --- xen/arch/x86/mm.c | 5 +---- xen/common/kexec.c | 7 +++++++ xen/include/asm-x86/mm.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 97d866cc8e..579d40b9bc 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -137,8 +137,7 @@ l1_pgentry_t __attribute__ ((__section__ (".bss.page_aligned"))) /* Private domain structs for DOMID_XEN and DOMID_IO. */ struct domain *dom_xen, *dom_io; -/* Frame table and its size in pages. */ -struct page_info *__read_mostly frame_table; +/* Frame table size in pages. */ unsigned long max_page; unsigned long total_pages; @@ -167,8 +166,6 @@ void __init init_frametable(void) { unsigned long nr_pages, page_step, i, mfn; - frame_table = (struct page_info *)FRAMETABLE_VIRT_START; - nr_pages = PFN_UP(max_page * sizeof(*frame_table)); page_step = 1 << (cpu_has_page1gb ? L3_PAGETABLE_SHIFT - PAGE_SHIFT : L2_PAGETABLE_SHIFT - PAGE_SHIFT); diff --git a/xen/common/kexec.c b/xen/common/kexec.c index e85c2638b9..56196167b8 100644 --- a/xen/common/kexec.c +++ b/xen/common/kexec.c @@ -338,7 +338,14 @@ static void crash_save_vmcoreinfo(void) VMCOREINFO_PAGESIZE(PAGE_SIZE); VMCOREINFO_SYMBOL(domain_list); +#ifndef frame_table VMCOREINFO_SYMBOL(frame_table); +#else + { + static const void *const _frame_table = frame_table; + VMCOREINFO_SYMBOL_ALIAS(frame_table, _frame_table); + } +#endif VMCOREINFO_SYMBOL(max_page); VMCOREINFO_STRUCT_SIZE(page_info); diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h index 30f3f56083..2d346629c4 100644 --- a/xen/include/asm-x86/mm.h +++ b/xen/include/asm-x86/mm.h @@ -259,7 +259,7 @@ extern void share_xen_page_with_guest( extern void share_xen_page_with_privileged_guests( struct page_info *page, int readonly); -extern struct page_info *frame_table; +#define frame_table ((struct page_info *)FRAMETABLE_VIRT_START) extern unsigned long max_page; extern unsigned long total_pages; void init_frametable(void); -- 2.30.2